A business object is a software entity representing real-world items used during the transaction of business. For example, a business object may represent a business document such as a sales order, a purchase order, or an invoice. A business object may also represent items such as a product, a business partner, or a piece of equipment.
A business object may include business logic and/or data having any suitable structure. The structure of a business object may be determined based on the requirements of a business scenario in which the business object is to be deployed. A business solution for a particular business scenario may include many business objects, where the structure of each business object has been determined based on the requirements of the particular business scenario.
A customer deploying a business solution may desire changes to the business objects included in the business solution. For example, a customer may require a field (e.g., “SerialNumber”) which does not exist within the “Product” business object of a business solution. In addition, another customer may require a different additional field in the “Product” business object and/or in another business object of the same business solution.
Conventional techniques for adding a field to an existing business object include APPEND mechanisms which change the definition of the business object at the data dictionary level. An entire database system must be recompiled to effect such a change, and the change occurs globally with respect to all instantiations of the business object within the system. Moreover, the change may require reprogramming of application clients which interact with the changed business object.
In some scenarios, particularly service-on-demand scenarios, multiple customers (tenants) receive services from a single application platform. If one of the multiple tenants adds an extension field to a business object using a conventional technique as described above, each other tenant would be forced to adapt to the additional extension field.
Improved systems for adding an extension field to a business object are desired. An improved system may reduce a need for recompiling the application platform, may reduce a need to adapt application clients to a thusly-changed business object, may enable one or more tenants to add one or more extension fields, and/or may provide tenant-specific views of tenant-specific extension fields.